diff options
Diffstat (limited to 'src/routes/user/[user]/badges/+page.svelte')
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index 2abf8377..69b74917 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -31,7 +31,7 @@ $: ({ BadgeWallUser } = data); $: preferences = $BadgeWallUser.fetching ? undefined - : ($BadgeWallUser.data?.User.preferences as Preferences); + : ($BadgeWallUser.data?.User?.preferences as Preferences | undefined); $: if (browser && preferences && preferences.badge_wall_css) { const sanitise = (css: string) => @@ -191,7 +191,7 @@ let importLinks = false; let importCategory = ''; let importReplies = false; - let badger: Partial<User>; + let badger: Partial<User> | null; let migrateMode = false; let hideMode = false; const authorised = authorisedJson.includes($identity.id); @@ -202,10 +202,17 @@ type GroupedBadges = { [key: string]: IndexedBadge[] }; - const setShadowHide = () => + const setShadowHide = () => { + if (!badger) { + loadError = 'Something went wrong. Try refreshing.'; + + return; + } + shadowHideBadgeQuery.mutate({ id: badger.id as number }); + }; onMount(async () => { if (browser && (await localforage.getItem('badgeWallNoticeDismissed'))) noticeDismissed = true; @@ -217,8 +224,8 @@ } : await user(data.username); - if (!isId && !badger) { - loadError = 'User not found.'; + if (!badger) { + loadError = "Couldn't find this user."; return; } @@ -506,6 +513,12 @@ const shadowHideBadge = () => { if (!selectedBadge && !authorised) return; + if (!badger) { + loadError = 'Something went wrong. Try refreshing.'; + + return; + } + shadowHideBadgeQuery .mutate({ id: badger.id as number, @@ -528,6 +541,8 @@ <Message message="Loading badges ..." /> <Skeleton grid={true} count={100} width="150px" height="170px" /> + {:else if !$BadgeWallUser.data.User} + <Message message="No badges yet." /> {:else} {@const ungroupedBadges = castBadgesToIndexedBadges($BadgeWallUser.data.User.badges)} {@const isBadgeSelected = |